ExcelVBAPartsCollection Home Excel Reference Manual DownLoad My Profile
Menu Back Next Links Excel Function Manual Myself My BBS


文字の書式設定

 





文字の表示形式


1  NumberFormat と NumberFormaLocal

  表示形式は、Excel メニューの「編集(O)」「セル(E)」を選択すると表示される「セルの書式設定」ダイアログボックスの「表示形式」パネルで指定する内容です。
 
 数値、日付、時刻、文字列の表示形式を指定するには、NumberFormat または NumberFormaLocal プロパティの値に数値や文字列の表示形式を文字列型の値を使用して設定します。
 
 表示形式に指定する文字列(値)は、ワークシート上で行う表示形式を設定する処理の、[セルの書式設定] ダイアログ ボックスの [表示形式] タブで、[分類] ボックスから [ユーザー定義] を選択したときに表示される [種類] ボックスの中の文字列と同じです。
 
  表示形式を指定する文字列の内容は、「Excel Reference Manual」「セルの書式設定」「文字の表示形式」の中で詳しい解説がしてありますので、ここをクリックしてご覧ください。
 
 書式例:セル A1 の数値を「#,##0」の表示形式で指定する。
   Range("A1").NumberFormat = "#,##0"
   Range("A1").NumberFormatLocal = "#,##0"
 
 NumberFormat と NumberFormaLocal は、どちらも値の取得および設定が可能であり、指定内容に大きな違いはありません。マクロの自動記録機能を利用して表示形式を設定すると、コード実行時の言語の文字列で設定するためか、 NumberFormaLocal プロパティが使用されます。

  たとえば、セルの表示形式を「標準」にする場合、次のように指定します。
   Range("A1").NumberFormat = "General"
   Range("A1").NumberFormatLocal = "G/標準"

  また、セル A1 に "2002/10/5" を入力して、平成14年10月5日と表示する処理をマクロの自動記録機能で行うと、
   Range("A1").Select
   Selection.NumberFormatLocal = "ggge""年""m""月""d""日"""
と記録されますが、

   Range("A1").NumberFormatLocal = "ggge年m月d日"
   Range("A1").NumberFormat = "ggge年m月d日"
というコードでも同じ結果を得ることができます。

 下図は、NumberFormat プロパティとNumberFormatLocalプロパティを使用して表示形式を指定した例です。
 通貨、会計、分数では異なった表示結果になっていますので注意が必要です。


1 表示形式の設定と取得


処理内容:セル A1 に文字列の表示形式を設定し、結果をメッセージボックスに表示します。
Sub format_1()
Worksheets("Sheet1").Range("A1").NumberFormat = "@"
MsgBox Worksheets("Sheet1").Range("A1").NumberFormat
End Sub





表示形式の指定例

 数値の表示形式
セル入力値 表示結果 表示形式の指定
1234.56 1,235 Selection.NumberFormat = "#,##0;0;[Red]-#,##0"
-1234.56 -1,235 Selection.NumberFormat = "#,##0;0;[Red]-#,##0"
1234.56 1,234.6 Selection.NumberFormat = "#,##0.0"
0 0 Selection.NumberFormat = "#,##0"
0 (表示なし) Selection.NumberFormat = "#,###"
0.9537 95.4% Selection.NumberFormat = "0.0%"
 日付の表示形式
セル入力値 表示結果 表示形式の指定
2002/10/5 02/10/5 Selection.NumberFormat = "yy/m/d"
2002/10/5 2002/10/05 Selection.NumberFormat = "yyyy/mm/dd"
2002/10/5 H14.10.5 Selection.NumberFormat = "ge.m.d"
 2002/10/5  平14/10/05 Selection.NumberFormat = "ggee/mm/dd"
 2002/10/5 平成14年10月05日 Selection.NumberFormat = "gggee年mm月dd日"
 曜日の表示形式
セル入力値 表示結果 表示形式の指定
2002/10/5 02/10/5(土) Selection.NumberFormat = "yy/m/d(aaa)" 
2002/10/5 H14.10.05(土曜日) Selection.NumberFormat = "gee.mm.dd(aaaa)"
2002/10/5 Sat.Oct 5,02 Selection.NumberFormat = "ddd.mmm d,yy"
2002/10/5 Saturday.October 05,2002 Selection.NumberFormat = "dddd.mmmm dd,yyyy"
 時刻の表示形式
セル入力値 表示結果 表示形式の指定
15:5:40 15:5;40 Selection.NumberFormat = "h:m:s" 
 15:5:40  15:05:40 Selection.NumberFormat = "hh:mm:ss"
 15:5:40 3:05 pm Selection.NumberFormat = "h:mm am/pm"
5:5:40 5:05 AM Selection.NumberFormat = "h:mm AM/PM"
 25:10  1:10 Selection.NumberFormat = "h:m"
 25:10  25:10 Selection.NumberFormat = "[h]:m"
 文字列の表示形式
セル入力値 表示結果 表示形式の指定
ABC ABC Selection.NumberFormat = "@"
123 123 Selection.NumberFormat = "@"





2 Format 関数による表示書式

 Format 関数数値、日付、時刻、文字列などを指定した書式に変換します。
 
 [ Format 関数の書式]
   Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

 [ 表示形式指定例 ]
   変数に日付と曜日の書式の変換結果を代入します。
     Dim DateStr,Dateformat 
     DateStr = #2002/10/5#
     DateFormat = Format(DateStr,"dddd.mmm dd,yyyy")
     MsgBox Dateformat  ' Saturday.Oct 05,2002  が表示されます。

 なお、Excel2000で追加された FormatCurrency関数、FormatDateTime関数、FormatNumber関数、FormatPercent関数は、従来のFormat 関数でも代替可能です。

 FormatCurrency 関数  FormatCurrency(123456) → 
                Format(123456, "Currency")
 FormatDateTime 関数  FormatDateTime(#4/5/2005 15:30:15 PM#, vbGeneralDate) → 
                Format(#4/5/2004 15:30:15 PM#, "General Date")
 FormatNumber 関数  FormatNumber(123456) →
                Format(123456, "Standard")
 FormatPercent 関数    FormatPercent(0.123) → 
                Format(0.123, "Percent")

Format 関数の書式に使用される引数

引   数 指     定     内     容
expression 必ず指定します。変換の対象となる文字列や、数値として評価される式(キーワード、演算子、変数、定数などの組み合わせ)を指定します。
引数 expression に指定したデータは、引数 format の書式に従って変換されます。 
format 省略可能です。定義済み書式または表示書式指定文字を指定します。
 format を省略して数値に書式を設定しようとすると、Format 関数は Str 関数を呼び出した場合と同様の結果を返します。
ただし、Str 関数を使用して正の数値を文字列に変換した場合、符号用のスペースが先頭に付加されますが、Format 関数を使用した場合、このスペースは付加されません。
firstdayofweek 省略可能です。週の 1 日目を指定する開始曜日を指定します。
定   数 内        容
vbSunday 1 (既定値) 日曜
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
vbThursday 5 木曜
vbFriday 6 金曜
vbSaturday 7 土曜
firstweekofyear 省略可能です。年の第 1 週を指定する開始週を指定します。
定   数 内        容
vbFirstJan1 1 (既定値) 1 月 1 日を含む週から始まります。
vbFirstFourDays 2 年の 4 日以上が含まれる最初の週から始まります。
vbFirstFullWeek 3 年のうち、7 日が含まれる最初の週から始まります。

 Format 関数の表示形式指定に用いる文字列は、概ね NumberFormat プロパティと同様ですが、独自のものもあります。

Format 関数の定義済み書式

 定義済み書式は、予め表示形式が定義されている書式に名称を付したもので、表示形式に用いる文字列として使用します。たとえば、数値をパーセントで表示したいときは、次のように指定します。

   Num = 0.12345
   MyData = Format(Num,"Percent")
   MsgBox MyData  ' 12.35% と表示される

定義済み数値書式

書  式  名

内               容

General Number 指定された数値をそのまま返します。
例:MsgBox Format(100000,"General Number") → 100000
Currency 通貨や1000単位の区切り記号などを、スタートメニューの「設定」「コントロールパネル」「地域」を選択して、「通貨タブ」で設定された書式に変換した値を返します。
例:MsgBox Format(100000,"Currency") → \100,000
Fixed 整数部を最低 1 桁、小数部を最低 2 桁表示する書式に変換した値を返します。
例:MsgBox Format(1000.234,"Fixed") → 1000.23
Standerd 整数部を最低 1 桁、小数部を最低 2 桁表示する書式に変換した値を返します。(1000単位の区切り記号・・・「 , 」を付けます。
例:MsgBox Format(1000.234,"Standard") → 1,000.23
Percent 指定された数値を100倍して、小数部を最低 2 桁表示する書式に変換した値を返します。(1000単位の区切り記号・・・「 , 」を付けます。
例:MsgBox Format(0.234,"Percent") → 23.40%
Scientific 標準的な科学記法の書式に変換した値を返します。
例:MsgBox Format(0.234,"Scientific") → 2.34E-01
Yes/No 指定された値が 0 の場合は No、それ以外の場合には Yes を返します。
例:MsgBox Format(0,"Yes/No") → No
True/False 指定された値が 0 の場合は (False)、それ以外の場合には (True) を返します。
例:MsgBox Format(0,"True/False") → FALSE
On/Off 指定された値が 0 の場合は Off、それ以外の場合には On を返します。
例:MsgBox Format(0,"On/Off") → Off
Scientific 標準的な科学記法の書式に変換した値を返します。
例:MsgBox Format(0.234,"Scientific") → 2.34E-01
0000 指定された値が 指定した桁数以下の場合0を付した書式に変換した値を返します。
例:MsgBox Format(411,"0000") → 0411
#### 指定された値の整数部を返します。
例:MsgBox Format(411,"####") → 411
0.00 指定された値を指定した少数桁表示する書式に変換した値を返します。
例:MsgBox Format(196.5,"0.00") → 196.50
0% 指定された値を %に変換した値を返します。
例:MsgBox Format(0.35,"0%") → 35%

定義済み日付・時刻書式

書  式  名

内               容

General Date データとして整数部だけの数値を指定された場合は日付だけを、小数部の数値の場合は時刻だけを、整数部と小数部の両方を含む数値の場合は日付と時刻の両方を、コントロールパネルの「地域のプロパティ」の「日付」および「時刻」のタブで設定された書式で返します。
例:MsgBox Format(#4/12/2003#,"General Date") → 03/04/12
Long Date コントロールパネルの「地域のプロパティ」の「日付」タブで「長い形式」に指定した書式で日付を返します。
例:MsgBox Format(#4/12/2003#,"Long Date") → 2003年4月12日
Medum Date 簡略形式で表した日付を返します。
例:MsgBox Format(#4/12/2003#,"Medium Date") → 03-04-08
Short Date コントロールパネルの「地域のプロパティ」の「日付」タブで「短い形式」に指定した書式で日付を返します。
例:MsgBox Format(#4/12/2003#,"Short Date") → 03/04/12
Long Time 時間、分、秒を含む書式で時刻を返します。
例:MsgBox Format(#2:20:50 PM#,"Long Time") → 14:20:50
Medum Time 時間と分を 12 時間制の書式で表した時間を返します。(午前の場合はAM、午後の場合はPMが付きます。なお、使用言語を日本語で設定した場合は、それぞれ午前、午後となります。)
例:MsgBox Format(#2:20:50 PM#,"Medium Time") → 02:20 午後
Short Time 時間と分を 24 時間制の書式で表した時刻を返します。
例:MsgBox Format(#2:20:50 PM#,"Short Time") → 14:20

 その他、Format 関数で使用できる表示書式指定文字を紹介します。

日付・時刻表示書式指定文字

表示書式指定文字

内               容

oooo

月の名前を日本語で返します( 1 月〜 12 :月)
例:MsgBox Format(#10/5/2002#, "oooo")  ' 10 月

w

曜日を表す数値を返します(日曜日が 1 、土曜日が 7 )
例:MsgBox Format(#10/5/2002#, "w")  ' 7 

y

指定した日付が1年のうちで何日目にあたるかを数値で返します。
( 1 〜 366 ) 例:MsgBox Format(#10/5/2002#, "y")  ' 278 

q

指定した日付が1年のうちで何番目の四半期にあたるかを表す数値を返します。( 1 〜 4 )
例:MsgBox Format(#10/5/2002#, "q")  ' 4 

ww

指定した日付が1年のうちで何週目にあたるかを数値で返します。
( 1 〜 54 ) 例:MsgBox Format(#10/5/2002#, "ww")  ' 40

n

分を返します。( 0 〜 59 )
例:MsgBox Format(#12:35:40 PM#, "n")  ' 35("m"にすると12が返る)

文字列表示書式指定文字

表示書式指定文字

内               容

@

1つの"@"が 1 つの文字またはスペースを表します。("@"を指定した位置に該当する文字が無い場合には半角スペースが入ります。)
例:MsgBox Format("Micrsoft", "@@@@@")  ' Micrsoft

&

1つの"&"が 1 つの文字を表します。(”&”を指定した位置に該当する文字が無い場合には詰められます。)
例:MsgBox Format("Micrsoft", "&&&&&")  ' Micrsoft

<

指定されたデータのうち、アルファベットの大文字をすべて小文字に変換します。(半角文字も全角文字の両方変換されます。
例:MsgBox Format("ExcelVBA", "<")  ' excelvba

>

指定されたデータのうち、アルファベットの小文字をすべて大文字に変換します。(半角文字も全角文字の両方変換されます。
例:MsgBox Format("ExcelVBA", ">")  ' EXCELVBA

!

文字を左から右の順に詰めていくように指定します(" ! "を指定しない場合は、右から左に詰められます。)
例:MsgBox Format("ExcelVBA", "!@@@@@")  ' elVBA 





フォント指定の概要


  フォントは、Excel メニューの「編集(O)」「セル(E)」を選択すると表示される「セルの書式設定」ダイアログボックスの「フォント」パネルで指定する内容です。フォントは何も指定しないと「標準」が適用されます。
 
 文字のフォント指定の内容には、フォント名、スタイル、サイズといった基本的項目のほか取消線、上付き・下付き文字、影付き文字、下線、色などの修飾機能があります。

 下記は、マクロの自動記録機能を利用してフォント指定を行った結果です。

  Range("A2").Select
  With Selection.Font
    .Name = "MS ゴシック"
    .FontStyle = "太字"
    .Size = 12
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleSingle
    .ColorIndex = 5
  End With

プロパティ 機    能 指     定     内     容
Name フォント名 フォントリストの中にある名称を指定します
FontStyle スタイル フォントの形を選択します
Size サイズ 文字の大きさを指定します
Strikethrough 取消線 Trueを指定すると文字の上に取り消し線を引きます
Superscript 上付き文字 Trueを指定すると文字を小さくして上付きにします
Subscript 下付き文字 Trueを指定すると文字を小さくして下付きにします
OutlineFont アウトラインフォント Trueを指定するとアウトラインフォントになります
Shadow 影付き文字 Trueを指定すると文字に影をつけます
Underline 下線 下線の種類を選択して下線をつけます
ColorIndex 文字色 文字の色を付けます





フォントの名前・形・サイズ


1 フォント名

 Excelのフォントリストに登録されているフォント名を指定します。全・半角、スペースに注意します。

フォント名の指定

処理内容:セル A1 のフォントを「MS P明朝」にします。
Sub font_1()
Worksheets("Sheet1").Select
Range("A1").Font.Name = "MS P明朝"  ' MSとPの間は半角
End Sub


2 フォントスタイル

 フォントの形を FontStyle プロパティの値として指定します。種類は次のとおりです。
「標準」      Font.Name = "標準"
「斜体」      Font.Name = "斜体"
         Font.Italic = True  によっても指定できます。
「太字」      Font.Name = "太字"
         Font.Bold = True  によっても指定できます。
「太字 斜体」   Font.Name = "太字 斜体"
下記によっても指定できます。
With Font
.Italic = True
.Bold = True
End With

フォントスタイルの指定

処理内容:セル A1 のフォントスタイルを「標準」にします。
Sub font_2()
Worksheets("Sheet1").Select
Range("A1").Font.FontStyle = "標準"
End Sub

3 フォントのサイズ

 フォントのサイズをポイント単位で Size プロパティの値として指定します。
フォントサイズの指定

処理内容:セル A1 のフォントサイズを11ポイントに設定します。
Sub font_3()
Worksheets("Sheet1").Select
Range("A1").Font.Size = 11
End Sub





フォントの文字飾りと色


1 文字飾りの指定

 「取消線」「上付き文字」「下付き文字」「アウトラインフォント」「影付き文字」は、True を指定すると設定され、False を指定すると設定されません。既定値は False です。設定するバイの指定は次のとおりです。

  「取消線」            Font.Strikethrough  = True
  「上付き文字」        Font.Superscript  = True
  「下付き文字」        Font.Subscript  = True
  「アウトラインフォント」   Font.OutlineFont  = True
  「影付き文字」        Font.Shadow  = True

 下線を設定するときは、Underline プロパティの値を下記の中から選択して指定します。既定値は
 xlUnderlineStyleNone です。
  「下線なし」  Font.Underline = xlUnderlineStyleNone  
  「一重線」   Font.Underline = xlUnderlineStyleSingle
  「二重線」   Font.Underline = xlUnderlineStyleDouble
文字飾りの指定

処理内容:セル A1 二重線を設定します。
Sub font_4()
Worksheets("Sheet1").Select
Range("A1").Font.Underline = xlUnderlineStyleDouble
End Sub





2 文字の色

 文字色を指定するには「ColorIndex」プロパティのインデックス番号(1〜56)による指定と、「Color」プロパティにより「RGB」関数の値で指定する方法があります。

 なお、「RGB関数」は、RGB(赤明度、緑明度、青明度)の書式で表され、「R(レッド)」、「G(グリーン)」、「B(ブルー)」の光の三原色を元にして色をつくる関数です。明度は それぞれ 0〜255 の数値で指定します。明度を 0 にするとその色は出なくなり、255 にすると 100% 色が出ます。

文字色の指定

処理内容:「ColorIndex」により赤を設定します。
Sub font_5()
Worksheets("Sheet1").Select
Range("A1").Font.ColorIndex = 3
End Sub


処理内容:「Color」と「RGB関数」により赤を設定します。
Sub font_6()
Worksheets("Sheet1").Select
Range("A1").Font.Color = RGB(255,0,0)
End Sub





テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル